package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 设备服务计费规则对象 equipment_service_billing_rules
 *
 * @author ruoyi
 * @date 2025-05-09
 */
@ApiModel("设备服务计费规则对象")
public class EquipmentServiceBillingRules extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 设备服务计费规则的唯一标识符，自动递增 */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 计费类型，描述计费规则所属的类型，如小时计费、日计费等 */
    @ApiModelProperty("计费类型")
    @Excel(name = "计费类型，描述计费规则所属的类型，如小时计费、日计费等")
    private String billingType;

    /** 名称，描述计费规则的具体名称 */
    @ApiModelProperty("名称")
    @Excel(name = "名称，描述计费规则的具体名称")
    private String name;

    /** 编号，计费规则的唯一编号，用于标识和查询 */
    @ApiModelProperty("编号")
    @Excel(name = "编号，计费规则的唯一编号，用于标识和查询")
    private String code;

    /** 计费方式，描述计费的具体方式，如按小时、按天、按项目等 */
    @ApiModelProperty("计费方式")
    @Excel(name = "计费方式，描述计费的具体方式，如按小时、按天、按项目等")
    private String billingMethod;

    /** 活动，描述与该计费规则相关的活动信息 */
    @ApiModelProperty("活动")
    @Excel(name = "活动，描述与该计费规则相关的活动信息")
    private String activity;

    /** 排序，用于确定计费规则在列表中的显示顺序 */
    @ApiModelProperty("排序")
    @Excel(name = "排序，用于确定计费规则在列表中的显示顺序")
    private Long sortOrder;

    /** 状态，表示计费规则的当前状态，如激活、未激活、已删除 */
    @ApiModelProperty("状态")
    @Excel(name = "状态，表示计费规则的当前状态，如激活、未激活、已删除")
    private String status;

    /** 开单优惠，表示在开单时提供的折扣比例或金额 */
    @ApiModelProperty("开单优惠")
    @Excel(name = "开单优惠，表示在开单时提供的折扣比例或金额")
    private BigDecimal orderDiscount;

    /** 开单后，描述开单后需要执行的操作或注意事项 */
    @ApiModelProperty("开单后")
    @Excel(name = "开单后，描述开单后需要执行的操作或注意事项")
    private String postOrderAction;

    /** 超出时段，描述超出预定计费时段后的处理方式，如额外收费、停止服务等 */
    @ApiModelProperty("超出时段")
    @Excel(name = "超出时段，描述超出预定计费时段后的处理方式，如额外收费、停止服务等")
    private String exceedTimeHandling;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setBillingType(String billingType)
    {
        this.billingType = billingType;
    }

    public String getBillingType()
    {
        return billingType;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }

    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }

    public void setBillingMethod(String billingMethod)
    {
        this.billingMethod = billingMethod;
    }

    public String getBillingMethod()
    {
        return billingMethod;
    }

    public void setActivity(String activity)
    {
        this.activity = activity;
    }

    public String getActivity()
    {
        return activity;
    }

    public void setSortOrder(Long sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder()
    {
        return sortOrder;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setOrderDiscount(BigDecimal orderDiscount)
    {
        this.orderDiscount = orderDiscount;
    }

    public BigDecimal getOrderDiscount()
    {
        return orderDiscount;
    }

    public void setPostOrderAction(String postOrderAction)
    {
        this.postOrderAction = postOrderAction;
    }

    public String getPostOrderAction()
    {
        return postOrderAction;
    }

    public void setExceedTimeHandling(String exceedTimeHandling)
    {
        this.exceedTimeHandling = exceedTimeHandling;
    }

    public String getExceedTimeHandling()
    {
        return exceedTimeHandling;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("billingType", getBillingType())
                .append("name", getName())
                .append("code", getCode())
                .append("billingMethod", getBillingMethod())
                .append("activity", getActivity())
                .append("sortOrder", getSortOrder())
                .append("status", getStatus())
                .append("orderDiscount", getOrderDiscount())
                .append("postOrderAction", getPostOrderAction())
                .append("exceedTimeHandling", getExceedTimeHandling())
                .append("phone", getPhone())
                .toString();
    }
}
